package cn.ljy.mes.service;

import cn.ljy.authority.service.BaseService;
import cn.ljy.common.utils.page.Pagination;
import cn.ljy.mes.model.ShopCustomer;
import cn.ljy.mes.model.query.ShopCustomerQuery;

public interface ShopCustomerService extends BaseService<ShopCustomer, ShopCustomerQuery> {
    /**
     * 修改密码
     * 说明：
     * 1.本方法不对原密码、新密码和确认密码的规则（如长度等）进行验证，请在web层验证后再传入
     * 2.修改自己密码后，会刷新redis中保存的账户密码信息，防止修改自己密码后被踢出登录状态。
     * @param username 必填
     * @param password 必填
     * @param newPass 必填
     * @param confirmPass 必填
     * @param token 当前登录账户的token信息，用于刷新redis中的账户密码信息
     */
//    void updatePassword(String username,String password,String newPass,String confirmPass,String token);


    /**
     * 精确匹配优先的账户名搜索
     * 这里实际上不需要分页业务，但是为了配合前端封装好的组件，因此都按照分页方式返回。
     * 说明：例如搜索user，有多个匹配账户，例如user、user1、user313等账户，能够按照最匹配（user、user1、user313）的排序返回集合。
     * @param username 用户名（支持模糊）
     * @return 精确匹配排在最前的结果
     */
    Pagination queryByUserNameWithExactMatchFirst(String username);
}
